Estimating Potential Parallelism by Data-Dependence Profiling

نویسنده

  • Andreas Donig
چکیده

With the rise of multi-core consumer hardware, today’s software developers face the challenging task of refactoring existing sequential code assets with a view to exploiting modern multi-core processors’ parallel execution capabilities. While there is a growing range of methods to support parallelism in software products, a software engineer nonetheless has to decide which parts of an already existing software are worth the effort of being modified. We propose an extensible data dependence profiling framework that facilitates the estimation of a software component’s inherent potential for parallelism. Our framework is based on the Low Level Virtual Machine (LLVM) compiler infrastructure. We use LLVM to perform a static analysis of a given code and instrument the code at the intermediate representation level to record memory accesses and control flow. The information recorded, together with the result of the static analysis, is used to estimate the parallelism inherent in the program. We evaluate our tool on a benchmark covering algorithmic problems like searching, sorting and numerical methods.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Prospector: A Dynamic Data-Dependence Profiler To Help Parallel Programming

Multiprocessor architectures are increasingly common these days. In order to fully and efficiently utilize the abundant hardware parallelism, translating many sequential programs into parallel programs is a pressing need. Although many compilers support automatic parallelization, most programmers are still manually parallelizing their applications. To help parallelizing applications especially ...

متن کامل

Discovering and exploiting parallelism in DOACROSS loops

Although multicore processors have been the norm for a decade, programmers still struggle to write parallel general-purpose applications, resulting in underutilised on-chip resources. Automatic parallelisation is a promising approach to improving the performance of such applications without burdening the programmer. I explore various techniques for automatically extracting parallelism which spa...

متن کامل

Extracting Statistical Loop-Level Parallelism using Hardware-Assisted Recovery

Chip multiprocessors with multiple simpler cores are gaining popularity because they have the potential to drive future performance gains without exacerbating the problems of power dissipation and hardware complexity. These designs provide real benefits for server-class applications that are explicitly multi-threaded. However, for desktop and other systems, there is a large code base of single-...

متن کامل

Interval Based Workload Characterization for Distributed Systems

In this paper we analyze a graph model representing the coarse grain dependency and communication structure of a distributed application The model is called Timed Structural Parallelism Graph TSPG Nodes represent program components arcs represent depen dencies among components This workload model di ers from well known task graphs in two ways arcs can either have dependence or activa tion seman...

متن کامل

Facilitating program parallelisation : a profiling-based approach

The advance of multi-core architectures signals the end of universal speed-up of software over time. To continue exploiting hardware developments, effort must be invested in producing software that can be split up to run on multiple cores or processors. Many solutions have been proposed to address this issue, ranging from explicit to implicit parallelism, but consensus has yet to be reached on ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2012